import service from './index'

/**
 * 获取后台统计数据
 * @returns {Promise}
 */
export const getAdminStats = () => {
  return service({
    url: '/admin/stats',
    method: 'get'
  })
}

/**
 * 获取用户列表（后台管理）
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.keyword - 关键词搜索
 * @param {string} params.role - 用户角色
 * @param {string} params.status - 用户状态
 * @returns {Promise}
 */
export const getAdminUserList = (params) => {
  return service({
    url: '/admin/users',
    method: 'get',
    params
  })
}

/**
 * 获取用户详情（后台管理）
 * @param {number} userId - 用户ID
 * @returns {Promise}
 */
export const getAdminUserDetail = (userId) => {
  return service({
    url: `/admin/users/${userId}`,
    method: 'get'
  })
}

/**
 * 更新用户状态（后台管理）
 * @param {number} userId - 用户ID
 * @param {Object} data - 更新数据
 * @param {string} data.status - 用户状态
 * @returns {Promise}
 */
export const updateUserStatus = (userId, data) => {
  return service({
    url: `/admin/users/${userId}/status`,
    method: 'put',
    data
  })
}

/**
 * 设置用户角色（后台管理）
 * @param {number} userId - 用户ID
 * @param {Object} data - 更新数据
 * @param {string} data.role - 用户角色
 * @returns {Promise}
 */
export const setUserRole = (userId, data) => {
  return service({
    url: `/admin/users/${userId}/role`,
    method: 'put',
    data
  })
}

/**
 * 删除用户（后台管理）
 * @param {number} userId - 用户ID
 * @returns {Promise}
 */
export const deleteUser = (userId) => {
  return service({
    url: `/admin/users/${userId}`,
    method: 'delete'
  })
}

/**
 * 获取商品审核列表（后台管理）
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.keyword - 关键词搜索
 * @param {string} params.auditStatus - 审核状态
 * @returns {Promise}
 */
export const getProductAuditList = (params) => {
  return service({
    url: '/admin/products/audit',
    method: 'get',
    params
  })
}

/**
 * 审核商品
 * @param {number} productId - 商品ID
 * @param {Object} data - 审核数据
 * @param {string} data.status - 审核状态: 'approved', 'rejected'
 * @param {string} data.reason - 拒绝原因（当status为rejected时必填）
 * @returns {Promise}
 */
export const auditProduct = (productId, data) => {
  return service({
    url: `/admin/products/${productId}/audit`,
    method: 'put',
    data
  })
}

/**
 * 批量审核商品
 * @param {Object} data - 审核数据
 * @param {Array} data.productIds - 商品ID列表
 * @param {string} data.status - 审核状态: 'approved', 'rejected'
 * @param {string} data.reason - 拒绝原因（当status为rejected时必填）
 * @returns {Promise}
 */
export const batchAuditProducts = (data) => {
  return service({
    url: '/admin/products/batch-audit',
    method: 'put',
    data
  })
}

/**
 * 获取订单管理列表（后台管理）
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} params.orderNo - 订单号
 * @param {string} params.username - 用户名
 * @param {string} params.status - 订单状态
 * @returns {Promise}
 */
export const getAdminOrderList = (params) => {
  return service({
    url: '/admin/orders',
    method: 'get',
    params
  })
}

/**
 * 后台查看订单详情
 * @param {string} orderId - 订单ID
 * @returns {Promise}
 */
export const getAdminOrderDetail = (orderId) => {
  return service({
    url: `/admin/orders/${orderId}`,
    method: 'get'
  })
}

/**
 * 后台删除订单
 * @param {string} orderId - 订单ID
 * @returns {Promise}
 */
export const adminDeleteOrder = (orderId) => {
  return service({
    url: `/admin/orders/${orderId}`,
    method: 'delete'
  })
}

/**
 * 获取销售统计数据
 * @param {Object} params - 查询参数
 * @param {string} params.startDate - 开始日期
 * @param {string} params.endDate - 结束日期
 * @param {string} params.type - 统计类型: 'daily', 'weekly', 'monthly'
 * @returns {Promise}
 */
export const getSalesStatistics = (params) => {
  return service({
    url: '/admin/statistics/sales',
    method: 'get',
    params
  })
}

/**
 * 获取用户统计数据
 * @param {Object} params - 查询参数
 * @param {string} params.startDate - 开始日期
 * @param {string} params.endDate - 结束日期
 * @returns {Promise}
 */
export const getUserStatistics = (params) => {
  return service({
    url: '/admin/statistics/users',
    method: 'get',
    params
  })
}

/**
 * 获取分类统计数据
 * @returns {Promise}
 */
export const getCategoryStatistics = () => {
  return service({
    url: '/admin/statistics/categories',
    method: 'get'
  })
}

/**
 * 导出订单数据
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export const exportOrders = (params) => {
  return service({
    url: '/admin/export/orders',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 导出用户数据
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export const exportUsers = (params) => {
  return service({
    url: '/admin/export/users',
    method: 'get',
    params,
    responseType: 'blob'
  })
}
